coreEquiptAcqConfig = Gikam.extend(coreEquiptAcqConfig, {
    getEditListColumns : function() {
        return [{
            checkbox : true
        }, {
            field : 'equipCode',
            title : 'T_LIMS_EQUIPT.EQUIPTCODE'
        }, {
            field : 'equipName',
            title : 'T_LIMS_EQUIPT.EQUIPTNAME'
        }, {
            field : 'orgName',
            title : 'T_LIMS_EQUIPT.ORGNAME',
        },{
            field : 'location',
            title : 'T_LIMS_EQUIPT.LOCNAME'
        }];
    },

    /**
     * 设备采集配置
     */
    getAcqConfigBaseFields : function() {
        return [{
            field : 'acqCategory',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.ACQCATEGORY',
            type : 'select',
            category : 'sys',
            firstBlank : false,
            param : {
                codeCategoryId : 'equipt-acq-category',
            }
        }, {
            field : 'ext$.moduleipport',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.MODULEIPPORT',
            validators : ['ipPort']
        }, {
            field : 'ext$.labarea',
            title : '设备区域',
            type : 'select',
            category : 'sys',
            param : {
                codeCategoryId : 'ENVLABAREA'
            },
        }, {
            field : 'ext$.eptlabtype',
            title : '设备类别',
            type : 'select',
            category : 'sys',
            param : {
                codeCategoryId : 'EPTLABTYPE'
            },
        },{
            field : 'ext$.iftemphumi',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.IFTEMPHUMI',
            type : 'simpleCheckbox'
        },{
            field : 'ext$.monitorflag',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.MONITORFLAG',
            type : 'simpleCheckbox'
        }]
    },
    getAcqConfigTcpFields : function() {
        return [{
            field : 'ip',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.IP',
        }, {
            field : 'port',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.PORT',
        }, {
            field : 'ext$.netacqtype',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.NETACQTYPE',
            type : 'select',
            items : [{
                value : 'TCP',
                text : 'TCP'
            }, {
                value : 'UDP',
                text : 'UDP'
            }]
        }, {
            field : 'beginSymbol',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.BEGINSYMBOL',
        }, {
            field : 'endSymbol',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.ENDSYMBOL',
        }]
    },

    getAcqConfigMqttFields : function() {
        return [{
            field : 'ip',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.IP',
        }, {
            field : 'port',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.PORT',
        }, {
            field : 'ext$.username',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.USERNAME',
        }, {
            field : 'ext$.password',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.PASSWORD',
        }, {
            field : 'ext$.clientid',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.CLIENTID',
        }]
    },

    getAcqConfigSerialFields : function() {
        return [{
            field : 'ip',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.IP',
        }, {
            field : 'baudRate',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.BAUDRATE',
            type : 'select',
            category : 'baudrate'
        }, {
            field : 'terminator',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.TERMINATOR',
            validators : ['strLength(0, 36]']
        }, {
            field : 'dataBit',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.DATABIT',
            type : 'select',
            category : 'databit'
        }, {
            field : 'parityCheck',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.PARITYCHECK',
            type : 'select',
            category : 'paritycheck'
        }, {
            field : 'com',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.COM',
            type : 'select',
            category : 'comport'
        }, {
            field : 'stopBit',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.STOPBIT',
            type : 'select',
            category : 'stopbit'
        }, {
            field : 'endFlag',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.ENDFLAG',
        }]
    },
    getAcqConfigFileFields : function() {
        return [{
            field : 'ext$.fileanalyseway',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.FILEANALYSEWAY',
            type : 'select',
            category : 'sys',
            firstBlank : false,
            param : {
                codeCategoryId : 'fileAcqAnalyseWay',
            },
            onChange : function(field, value) {
                this.setData({
                    id : this.getData().id,
                    fileAnalyseWay : value,
                    ext$ : {
                        fileacqconfigid : '',
                        fileacqconfigdesc : '',
                    }
                })
            }
        }, {
            field : 'ext$.fileacqconfigdesc',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.FILEACQCONFIGDESC',
            type : 'choose',
            category : 'file-acq-config',
            single : true,
            targetFields : [{
                fileAcqConfigId : 'id'
            }, {
                fileAcqConfigDesc : 'configDesc'
            }]
        }, {
            field : 'ext$.hostip',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.HOSTIP',
        }, {
            field : 'ext$.hostport',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.HOSTPORT',
        }, {
            field : 'ext$.hostpath',
            title : 'T_CORE_EQUIPT_ACQ_CONFIG.HOSTPATH',
        }]
    },

    getSerialNetColumns : function() {
        return [{
            checkbox : true
        }, {
            field : 'acqCategory',
            title : 'T_LIMS_EQUIPT_SERIAL_NET_REC.ACQCATEGORY',
            type : 'select',
            category : 'sys',
            firstBlank : false,
            width : 120,
            param : {
                codeCategoryId : 'equipt-acq-category'
            }
        }, {
            field : 'dataUseType',
            title : '数据用途',
            type : 'select',
            category : 'sys',
            firstBlank : false,
            param : {
                codeCategoryId : 'equiptInstructionType'
            }
        },{
            field : 'acqData',
            title : 'T_LIMS_EQUIPT_SERIAL_NET_REC.ACQDATA',
            width : 350,
            type : 'richText'
        }, {
            field : 'analyseData',
            title : 'T_LIMS_EQUIPT_SERIAL_NET_REC.ANALYSEDATA',
            width : 350,
            type : 'richText'
        }, {
            field : 'createdTime',
            title : 'T_LIMS_EQUIPT_SERIAL_NET_REC.CREATEDTIME',
            type : 'dateTime'
        }];
    },

    getInstListColumns : function() {
        return [{
            checkbox : true
        }, {
            field : 'instructionName',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONNAME',
            editor : true,
            validators : ['notEmpty', 'strLength(0, 120)'],
            width : 120,
        }, {
            field : 'instructionType',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONTYPE',
            type : 'select',
            category : 'sys',
            editor : true,
            param : {
                codeCategoryId : 'equiptInstructionType'
            }
        }, {
            field : 'instruction',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTION',
            editor : true,
            type : 'richText',
            validators : ['notEmpty', 'strLength(0, 200)'],
            width : 150
        }, {
            field : 'hixFlag',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.HIXFLAG',
            editor : true,
            type : 'select',
            width : 120,
            firstBlank : false,
            category : 'sys',
            param : {
                codeCategoryId : 'yesorno'
            },
            validators : ['notEmpty', 'strLength(0, 120)']
        }, {
            field : 'conversationRole',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.CONVERSATIONROLE',
            editor : true,
            type : 'select',
            width : 120,
            category : 'sys',
            param : {
                codeCategoryId : 'conversationRole'
            },
            validators : ['notEmpty']
        }, {
            field : 'qos',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.QOS',
            editor : true,
            type : 'select',
            width : 120,
            category : 'sys',
            param : {
                codeCategoryId : 'qos'
            },
            validators : ['notEmpty']
        }, {
            field : 'ext$.script',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.SCRIPT',
            contentAlign : 'center',
            formatter : function(index, value, row) {
                var scriptId = row.scriptId;
                if(Gikam.isNotEmpty(scriptId)){
                    //查看，更新
                    return Gikam.printf('<a href="javascript:;" onclick="coreEquiptAcqConfig.lookInstScript(\'{scriptId}\')">{look}</a>&nbsp;&nbsp;<a href="javascript:;" onclick="coreEquiptAcqConfig.updateInstScript(\'{id}\')">{update}</a>', {
                        id : row.id,
                        scriptId : scriptId,
                        look : '查看',
                        update : '更新',
                    });
                }else{
                    //更新
                     return Gikam.printf('<a href="javascript:;" onclick="coreEquiptAcqConfig.updateInstScript(\'{id}\')">{update}</a>', {
                        id : row.id,
                        update : '更新',
                    });
                }
            },
            validators : ['notEmpty', 'strLength(0, 1200)'],
            width : 120,
        }, {
            field : 'remark',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.REMARK',
            editor : true,
            type : 'richText',
            validators : ['strLength(0, 400)'],
        }, {
            field : 'taskFlag',
            title : 'T_LIMS_EQUIPT_ACQ_SCHEDULE_TASK.TASKFLAG',
            type : 'select',
            category : 'sys',
            editor : true,
            param : {
                codeCategoryId : 'activatedFlag'
            }
        }, {
            field : 'acqFrequency',
            title : 'T_LIMS_EQUIPT_ACQ_SCHEDULE_TASK.ACQFREQUENCY',
            type : 'select',
            category : 'sys',
            editor : true,
            param : {
                codeCategoryId : 'sendFrequency'
            }
        }, {
            field : 'resultSaveType',
            title : 'T_LIMS_EQUIPT_ACQ_SCHEDULE_TASK.RESULTSAVETYPE',
            type : 'select',
            category : 'sys',
            editor : true,
            param : {
                codeCategoryId : 'resultSaveType'
            }
        }];
    },
    //查看指令的解析脚本
    lookInstScript : function(scriptId){
        var _this = this;
        var modal=Gikam.create('modal', {
            id:'modal',
            title: '解析脚本',
            width:1100,
            height:600
        });
        Gikam.create('layout', {
            renderTo: modal.window.$dom,
            center : {
                items:[{
                    type : 'form',
                    url :  Gikam.printf(IFM_CONTEXT + '/secure/core/module/equipt/acq-scripts' + '/{id}', {
                        id : scriptId
                    }),
                    readonly : true,
                    id : 'lookScriptForm',
                    fields : [ {
                         field : 'id',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.ID',
                     }, {
                         field : 'description',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.DESCRIPTION',
                         validators : [ 'strLength[0,90]', 'notEmpty' ]
                     },  {
                         field : 'ext$.params',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.PARAMS',
                    },{
                         field : 'script',
                         title : 'T_CORE_EQUIPT_ACQ_SCRIPT.SCRIPT',
                         type : 'textarea',
                         height : 400,
                         colspan : 2
                     } ]
                }]
            },
        });
    },
    //更新指令的解析脚本
    updateInstScript : function(id){
        Gikam.create('modal', {
            title : Gikam.choose.getConfig('beanshell-choose').title,
            url : Gikam.choose.getConfig('beanshell-choose').url + Gikam.param({
                single : true
            }),
            onAfterClose : function(rows) {
                if (Gikam.isNotEmpty(rows)) {
                    Gikam.getComp('lims-equipt-acq-config-edit-list-inst-grid').setData({
                        id : id,
                        scriptId : rows[0].id
                    },true);
                }
            }
        });
    },
    getInstInsertFormFields : function() {
        return [{
            field : 'instructionName',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONNAME',
            preInsert : true,
            validators : ['strLength[0,40]']
        }, {
            field : 'instructionType',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTIONTYPE',
            preInsert : true,
            type : 'select',
            category : 'sys',
            firstBlank : false,
            param : {
                codeCategoryId : 'equiptInstructionType'
            },
            validators : ['strLength[0,40]']
        }, {
            field : 'hixFlag',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.HIXFLAG',
            type : 'select',
            preInsert : true,
            firstBlank : false,
            category : 'sys',
            param : {
                codeCategoryId : 'yesorno'
            }
        }, {
            field : 'instruction',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_INST.INSTRUCTION',
            preInsert : true,
            validators : ['strLength[0,100]']
        }];
    },

    getAcqAnalysisResultColumns : function() {
        return [ {
            checkbox : true
        }, {
            field : 'sampleNo',
            title : 'T_CORE_FILE_ACQ_RESULT.SAMPLENO',
            validators : ['strLength[0,100]'],
            width : 120,
            editor : true
        }, {
            field : 'itemName',
            title : 'T_LIMS_TEST_METHOD_ITEM.ITEMNAME',
            validators : ['strLength[0,100]'],
            width : 120,
            type : 'comboBox',
            onBeforeEditorRender : function(row, index) {
                var itemList = row.possibleItemList;
                if (Gikam.isNotEmpty(itemList)) {
                    return {
                        items : itemList
                    }
                }
                return true;
            },
            editor : true
        }, {
            field : 'itemAliasName',
            title : 'T_LIMS_TEST_METHOD_ITEM.ITEMALIASNAME',
            validators : ['strLength[0,100]'],
            width : 120,
            editor : true
        }, {
            field : 'itemGroupFirst',
            title : 'T_LIMS_TEST_METHOD_ITEM.ITEMGROUPFIRST',
            validators : ['strLength[0,100]'],
            width : 120,
            editor : true
        }, {
            field : 'itemGroupSecond',
            title : 'T_LIMS_TEST_METHOD_ITEM.ITEMGROUPSECOND',
            validators : ['strLength[0,100]'],
            width : 120,
            editor : true
        }, {
            field : 'unit',
            title : 'T_LIMS_TEST_METHOD_ITEM.UNIT',
            validators : ['strLength[0,100]'],
            editor : true
        },  {
            field : 'originalResult',
            title : 'T_LIMS_TESTMATRIX_ANALYTE.ORIGINALRESULT',
            validators : ['strLength[0,100]'],
            editor: true
        }];
    },

    getEptItemListColumns : function() {
        return [ {
            checkbox : true
        }, {
            field : 'eptItemName',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_ITEM.EPTITEMNAME',
            width : 150,
            editor : true,
            validators : ['notEmpty', 'strLength(0,120)'/*, {
                type : 'unique',
                rule : '/secure/core/module/equipt/acq-configs/items/action/validate-unique',
                relateFields : ['equiptId']
            }*/]
        }, {
            field : 'itemName',
            title : 'T_LIMS_EQUIPT_ACQ_CONFIG_ITEM.ITEMNAME',
            editor : true,
            validators : ['notEmpty', 'strLength(0,120)']
        } ];
    },

    baseUrl : IFM_CONTEXT + '/secure/core/module/equipt/acq-configs',
    equiptUrl : IFM_CONTEXT + '/secure/basemodule/rm/equipments',
    serialNetRecUrl : IFM_CONTEXT + '/secure/basemodule/common/eptstorage/acqconfig/equipt-serial-net-recs',
    fileUrl : IFM_CONTEXT + '/core/module/item/files'
});
